package abg.core.service.demo.impl;

import abg.core.common.util.StringKit;
import abg.core.domain.db.Demo;
import abg.core.service.demo.DemoService;
import abg.core.domain.search.Psh;
import abg.core.mapper.DemoMapper;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.ArrayList;

/**
 * 模板表-用来复制粘贴创建新表 服务层实现。
 *
 * @author Administrator
 * @since 2024-01-17
 */
@Service
public class DemoServiceImpl implements DemoService {

    @Resource
    private DemoMapper demoMapper;

    /**
     * 插入数据模板表-用来复制粘贴创建新表
     */
    @Override
    public boolean insert(Demo demo) {
        //检查重复
        //        QueryWrapper eq = QueryWrapper.create().eq("name", "test");
        //        AaBm aaBm = aaBmMapper.selectOneByQuery(eq);
        //        if (aaBm != null) throw new SrsException(MSG.NAME_EXISTS);
        //        demo.setId(null);
        demoMapper.insertSelective(demo);
        return true;
    }

    /**
     * 根据主键删除模板表-用来复制粘贴创建新表
     *
     * @param ids 逗号分隔字符串
     */
    @Override
    public boolean delete(String ids) {
        ArrayList<String> idList = StringKit.split(ids);
        demoMapper.deleteBatchByIds(idList);
        return true;
    }

    /**
     * 根据主键更新模板表-用来复制粘贴创建新表
     */
    @Override
    public boolean update(Demo demo) {
        demoMapper.update(demo);
        return true;
    }

    /**
     * 根据模板表-用来复制粘贴创建新表主键获取详细信息。
     */
    @Override
    public Demo info(String id) {
        return demoMapper.selectOneById(id);
    }

    /**
     * 分页查询模板表-用来复制粘贴创建新表
     *
     * @param demo 搜索条件
     * @param psh 搜索条件
     */
    @Override
    public Page<Demo> page(Demo demo, Psh psh) {
        QueryWrapper wrapper = QueryWrapper.create();
        //        QueryWrapper wrapper = QueryWrapper.create()
        //                .and(SYS_MSG.MSG_TYPE_ID.eq(param.getName()))
        //                .and(SYS_MSG.TITLE.like(param.getCode()))
        //                .orderBy(SYS_MSG.CT.desc());
        return demoMapper.paginate(psh, wrapper);
    }

}
